class Solution {
    // 汉明距离
    public int hammingDistance2(int x, int y) {
        // 暴力枚举：
        int count = 0;
        for (int i = 0; i < 32; i++) {
            // 计算出对应位置的值
            int temp1 = ((x>>i) & 1);
            int temp2 = ((y>>i) & 1);
            // 看看两者的值是否相等
            if ((temp1 ^ temp2) == 1) {
                count++;
            }
        }
        return count;
    }

    public int hammingDistance(int x, int y) {
        // 异或+统计1的个数
        int count = 0;
        int n = x ^ y;
        while (n != 0) {
            count++;
            n = n & (n-1); // 消除1
        }
        return count;
    }


}